package api

import (
	"fmt"
	"github.com/spf13/viper"
)

type DBConfig struct {
	Host     string `json:"host"`
	Port     int64  `json:"port"`
	User     string `json:"user"`
	Passwd   string `json:"passwd"`
	Database string `json:"database"`
}

var (
	DbConfig DBConfig
)

func ParserConfig() {
	config := viper.New()
	config.SetConfigName("config")
	config.SetConfigType("yaml")

	// 正确地为这个 config 实例设置路径
	config.AddConfigPath("../config")    // 相对于 api 文件夹
	config.AddConfigPath("../../config") // 深层目录测试时
	config.AddConfigPath(".")            // 当前目录

	if err := config.ReadInConfig(); err != nil {
		panic(fmt.Errorf("无法读取配置文件: %w", err))
	}

	fmt.Println("配置读取成功:", config.AllSettings())

	// 使用 config 而不是 viper
	fmt.Println(config.GetString("db.host"))
	fmt.Println(config.GetInt64("db.port"))

	DbConfig.Host = config.GetString("db.host")
	DbConfig.Port = config.GetInt64("db.port")
	DbConfig.User = config.GetString("db.user")
	DbConfig.Passwd = config.GetString("db.passwd")
	DbConfig.Database = config.GetString("db.database")

}
